import { ApiProperty } from '@nestjs/swagger'
import { IsBoolean, IsNumber, IsOptional, IsString } from 'class-validator'
import { Column, CreateDateColumn, Entity, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm'

/** 奖品表 */
@Entity('wheel_task')
export class WheelTask {
  /**
   * 任务ID
   */
  @PrimaryGeneratedColumn()
  @IsNumber()
  wheelTaskId: number

  /**
   * 任务名称
   */
  @Column()
  @IsString()
  taskName: string

  /**
   * 任务描述
   */
  @Column({ nullable: true })
  @IsString()
  @IsOptional()
  taskDescription?: string

  /**
   * 单次获取的抽奖次数
   */
  @ApiProperty({ default: 1 })
  @Column({ default: 1 })
  @IsNumber()
  @IsOptional()
  drawCount?: number

  /**
   * 总共可以完成的次数
   */
  @ApiProperty({ default: 1 })
  @Column({ default: 1 })
  @IsNumber()
  @IsOptional()
  totalCompleteCount?: number

  /**
   * 是否启用
   */
  @ApiProperty({ default: true })
  @Column({ default: true })
  @IsBoolean()
  @IsOptional()
  isEnabled?: boolean

  // @ApiHideProperty()
  // @OneToMany(() => UserWheelTask, userTask => userTask.wheelTask)
  // userTasks?: UserWheelTask[]

  @CreateDateColumn()
  createdAt?: Date

  @UpdateDateColumn()
  updatedAt?: Date
}
